package lambda06;

import org.junit.Test;

import java.util.Arrays;
import java.util.function.Function;

/**
 * Function接口
 *    适用于既传递参数又获取执行结果的操作
 *  @FunctionalInterface
 * public interface Function<T, R> {
 *    R apply(T t);
 *  }
 */
public class FunctionDemo {
	@Test
	public void test01() {
         //1.将一个整数字符串,转换成一个整数返回
		Function<String, Integer> f1 = str -> Integer.parseInt(str);
		Integer i = f1.apply("123");
		System.out.println(i+3);
	}

	@Test
	public void test02() {
		//1.获取一个整型数组中最大的元素
		//Arrays的方法: static void sort(int[] a)
		//          对指定的 int 型数组按数字从小到大排序。
        Function<int[],Integer> f1 = arr ->{
	        Arrays.sort(arr);
	        return arr[arr.length-1];//最大索引位置元素就是最大元素
        };
		Integer max = f1.apply(new int[]{13, 23, 19, 1, 21});
		System.out.println(max);
	}
}
